package com.ruoyi.wms.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 库存商品信息对象 wms_stock_product
 *
 * @author ruoyi
 * @date 2025-10-24
 */

@Data
@ToString
@ApiModel(value = "库存商品信息对象", description = "库存商品信息对象")
public class StockProduct {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private String id;

    /** 商品编码 */
    @ApiModelProperty(value = "商品编码")
    private String productCode;

    /** 商品名称:大众捷达A2 */
    @ApiModelProperty(value = "商品名称:大众捷达A2")
    private String productName;

    /** 拆解物名称拆解结果 */
    @ApiModelProperty(value = "拆解物名称拆解结果")
    private String disassemblyName;

    /** 拆解物商品图片URL */
    @ApiModelProperty(value = "拆解物商品图片URL")
    private String disassemblyImg;

    /** 来源：1-采购 2-生产 3-调拨 4-退货 5-其他 */
    @ApiModelProperty(value = "来源：1-采购 2-生产 3-调拨 4-退货 5-其他")
    private Integer source;

    /** 管理方式 */
    @ApiModelProperty(value = "管理方式")
    private Integer managementMethod;

    /** 单个打码是或者否 */
    @ApiModelProperty(value = "单个打码是或者否")
    private Integer singleCode;

    /** 单位 */
    @ApiModelProperty(value = "单位")
    private String unit;

    /** 重量(kg) */
    @ApiModelProperty(value = "重量(kg)")
    private double weightKg;

    /** 最后入库人 */
    @ApiModelProperty(value = "最后入库人")
    private String lastInboundPerson;

    /** 最后入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "最后入库时间yyyy-MM-dd")
    private Date lastInboundTime;

    /** 仓库ID */
    @ApiModelProperty(value = "仓库code")
    private String warehouseCode;

    /** 仓库名称 */
    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    /** 库位ID */
    @ApiModelProperty(value = "库位ID")
    private String  areaCode;

    /** 入库库位信息 */
    @ApiModelProperty(value = "入库库位信息")
    private String areaName;

    /** 盘点批次号 */
    @ApiModelProperty(value = "盘点批次号")
    private String inventoryBatchNum;

    /** 录入人 */
    @ApiModelProperty(value = "录入人")
    private String createUser;

    /** 录入日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "录入日期yyyy-MM-dd")
    private String createDate;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间yyyy-MM-dd")
    private String updateDate;

    /** 数据来源 */
    @ApiModelProperty(value = "数据来源")
    private String dataSource;

    /** 入库类型：拆解入库 */
    @ApiModelProperty(value = "入库类型：拆解入库")
    private String inType;

    /** 拆解任务单号 */
    @ApiModelProperty(value = "拆解任务单号")
    private String taskNum;

    /** 拆解结果：待入库 */
    @ApiModelProperty(value = "拆解结果：待入库")
    private String disassemblyResult;

    /** 部位产品名称:轮胎轮毂 */
    @ApiModelProperty(value = "部位产品名称:轮胎轮毂")
    private String partProductName;

    /** 单个打码 */
    @ApiModelProperty(value = "单个打码")
    private String singleCoding;

    /** 金额 */
    @ApiModelProperty(value = "金额")
    private String amount;

    /** 待入库数量 */
    @ApiModelProperty(value = "待入库数量")
    private double inboundingQuantity;

    /** 入库数量 */
    @ApiModelProperty(value = "入库数量")
    private double inboundQuantity;

    /** 库存数量 */
    @ApiModelProperty(value = "库存数量")
    private double quantity;
}
